package de.akabahn.ebd.anlage;

import java.io.Serializable;
import java.util.ArrayList;

/**
 * An Abschnitt on the Anlage. As specified in the Anlagendatei.
 *
 * @author moschlar
 */
public class Abschnitt extends AbstractAbschnitt implements Serializable {

    private String bedingung;
    private String gleisname;
    private Signal psig;
    private HaltAbschnitt pha;
    private HaltAbschnitt php;
    private ArrayList<String> pws;
    private Signal gsig;
    private HaltAbschnitt gha;
    private HaltAbschnitt ghp;
    private ArrayList<String> gws;

    public Abschnitt() {}

    public Abschnitt(String name, String bedingung, String gleisname, Signal psig, HaltAbschnitt pha, HaltAbschnitt php, ArrayList<String> pws, Signal gsig, HaltAbschnitt gha, HaltAbschnitt ghp, ArrayList<String> gws) {
        super(name);
        this.bedingung = bedingung;
        this.gleisname = gleisname;
        this.psig = psig;
        this.pha = pha;
        this.php = php;
        this.pws = pws;
        this.gsig = gsig;
        this.gha = gha;
        this.ghp = ghp;
        this.gws = gws;
    }

    // <editor-fold defaultstate="collapsed" desc="Getter/Setter">
    public String getBedingung() {
        return bedingung;
    }

    public void setBedingung(String bedingung) {
        this.bedingung = bedingung;
    }

    public String getGleisname() {
        return gleisname;
    }

    public void setGleisname(String gleisname) {
        this.gleisname = gleisname;
    }

    public Signal getPsig() {
        return psig;
    }

    public void setPsig(Signal psig) {
        this.psig = psig;
    }

    public HaltAbschnitt getPha() {
        return pha;
    }

    public void setPha(HaltAbschnitt pha) {
        this.pha = pha;
    }

    public HaltAbschnitt getPhp() {
        return php;
    }

    public void setPhp(HaltAbschnitt php) {
        this.php = php;
    }

    public ArrayList<String> getPws() {
        return pws;
    }

    public void setPws(ArrayList<String> pws) {
        this.pws = pws;
    }

    public Signal getGsig() {
        return gsig;
    }

    public void setGsig(Signal gsig) {
        this.gsig = gsig;
    }

    public HaltAbschnitt getGha() {
        return gha;
    }

    public void setGha(HaltAbschnitt gha) {
        this.gha = gha;
    }

    public HaltAbschnitt getGhp() {
        return ghp;
    }

    public void setGhp(HaltAbschnitt ghp) {
        this.ghp = ghp;
    }

    public ArrayList<String> getGws() {
        return gws;
    }

    public void setGws(ArrayList<String> gws) {
        this.gws = gws;
    }
    // </editor-fold>

    @Override
    public String toString() {
        return String.format("<Abschnitt %s>", this.name);
    }

}
